package com.woniuxy.mapper;


import com.woniuxy.entity.po.system.Log;
import com.woniuxy.entity.po.system.LogRetention;

import java.util.List;

/**
 * @BelongsProject: community
 * @BelongsPackage: com.woniuxy.mapper
 * @Author: Quan
 * @Date: 2025/3/3 14:27
 */
public interface LogMapper {
	/**
	 * @Description: 有条件的查询log
	 * @Param:
	 * @Author: Quan
	 * @Date: 2025/3/3
	*/
	List<Log> queryLogInfo(Log log);

	/**
	 * @Description: 查询log中所有的username并返回
	 * @Param:
	 * @Author: Quan
	 * @Date: 2025/3/3
	*/
	List<String> queryUsername();

	/**
	 * @Description: 添加日志记录
	 * @Param: log - [Log]
	 * @Author: Quan
	 * @Date: 2025/3/3
	*/
	void addLog(Log log);

	/**
	 * @Description: 删除设定时间之前的日志信息
	 * @Param: null - [null]
	 * @Author: Quan
	 * @Date: 2025/3/4
	 */
	void delLog(String cutOffTime);

	/**
	 * @Description: 查询type为 simple_type类型是否存在
	 * @Param: [retention]
	 * @return: com.woniuxy.entity.po.system.LogRetention
	 * @Author: Quan
	 * @Date: 2025/4/7
	 */
	LogRetention querySimpleLog();

	/**
	 * @Description: 向log_retention表中添加log_type和log_retention_time
	 * @Param: [logRetention, simpleType]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/7
	 */
	void addLogRetention(LogRetention logRetention);

	/**
	 * @Description: 对对应log_type的数据中的log_retention_time进行更新
	 * @Param: [logRetention]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/7
	 */
	void updateLogRetentionTime(LogRetention logRetention);

	/**
	 * @Description: 通过log_type查询对应的持续时间
	 * @Param: [logType]
	 * @return: java.lang.Integer
	 * @Author: Quan
	 * @Date: 2025/4/7
	 */
	Integer queryLogRetention(String logType);
}
